home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / flashpc.exe / TEST.C < prev    next >
C/C++ Source or Header  |  1993-03-25  |  4KB  |  149 lines

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include "..\include\fpcwin.h"
  4.  
  5. /*--------------------------------------------------------------------
  6. -
  7. --------------------------------------------------------------------*/
  8.  
  9. void DspScn( void )
  10. {
  11.    ClrWin( 1, 1, 80, 25, 0x70 );
  12.  
  13.    WindowFP( 1, 1, 80, 25 );
  14.    FrameWin( '┌', '┐', '└', '┘', '─', '│', 0x70 );
  15.  
  16.    DspMsg( 31, 1, " Message Monitor " );
  17.  
  18.    DspMsg( 3,  3, "Last Key Message" );
  19.    DspMsg( 3,  4, "   Char code......." );
  20.    DspMsg( 3,  5, "   Scan code......." );
  21.  
  22.    DspMsg( 3,  7, "Keyboard Flags" );
  23.    DspMsg( 3,  8, "   KC_CHAR............ FALSE" );
  24.    DspMsg( 3,  9, "   KC_VIRTUALKEY...... FALSE" );
  25.    DspMsg( 3, 10, "   KC_SCANCODE........ FALSE" );
  26.    DspMsg( 3, 11, "   KC_SHIFT........... FALSE" );
  27.    DspMsg( 3, 12, "   KC_CTRL............ FALSE" );
  28.    DspMsg( 3, 13, "   KC_ALT............. FALSE" );
  29.    DspMsg( 3, 14, "   KC_KEYUP........... FALSE" );
  30.    DspMsg( 3, 15, "   KC_PREVDOWN........ FALSE" );
  31.    DspMsg( 3, 16, "   KC_LONEKEY......... FALSE" );
  32.    DspMsg( 3, 17, "   KC_DEADKEY......... FALSE" );
  33.    DspMsg( 3, 18, "   KC_COMPOSITE....... FALSE" );
  34.    DspMsg( 3, 19, "   KC_INVALIDCOMP..... FALSE" );
  35.  
  36.    DspMsg( 43, 3, "Last Mouse Message" );
  37.    DspMsg( 43, 4, "   x............" );
  38.    DspMsg( 43, 5, "   y............" );
  39.    DspMsg( 43, 6, "   codeHitTest.." );
  40.  
  41.    DspMsg( 43, 8, "Last Message...." );
  42.    DspMsg( 43, 9, "Clock Ticks....." );
  43. }
  44.  
  45. /*--------------------------------------------------------------------
  46. -
  47. --------------------------------------------------------------------*/
  48.  
  49. void DisplayMsg( QMSG qmsg )
  50. {
  51.    int              i;
  52.    unsigned long    j;
  53.    char             st[20];
  54.    CHRMSG           kbd;
  55.    MSEMSG           mou;
  56.  
  57.  
  58.    if ( qmsg.msg == WM_CHAR ) {
  59.       memcpy( &kbd.fs,  &qmsg.mp1, 4 );
  60.       memcpy( &kbd.chr, &qmsg.mp2, 4 );
  61.  
  62.       sprintf( st, "%03d", kbd.chr );
  63.       DspMsg( 23, 4, st );
  64.  
  65.       sprintf( st, "%02x", kbd.scancode );
  66.       DspMsg( 23, 5, st );
  67.  
  68.       for ( j = 1, i = 8; i <= 19; i++, j <<= 1 ) {
  69.          if ( kbd.fs & j )
  70.             DspMsg( 26, i, "TRUE " );
  71.          else
  72.             DspMsg( 26, i, "FALSE" );
  73.       }
  74.    }
  75.    else if ( qmsg.msg >= WM_MOUSEFIRST && qmsg.msg <= WM_MOUSELAST ) {
  76.  
  77.       memcpy( &mou.codeHitTest, &qmsg.mp2, 4 );
  78.       memcpy( &mou.x,           &qmsg.mp1, 4 );
  79.  
  80.       sprintf( st, "%3d",mou.x );
  81.       DspMsg( 60, 4, st );
  82.  
  83.       sprintf( st, "%3d",mou.y );
  84.       DspMsg( 60, 5, st );
  85.  
  86.       sprintf( st, "%03d", mou.codeHitTest );
  87.       DspMsg( 60, 6, st );
  88.  
  89.    }
  90.  
  91.  
  92.    switch ( qmsg.msg ) {
  93.       case WM_CHAR          : strcpy( st, "WM_CHAR         " ); break;
  94.       case WM_MOUSEMOVE     : strcpy( st, "WM_MOUSEMOVE    " ); break;
  95.       case WM_BUTTON1DOWN   : strcpy( st, "WM_BUTTON1DOWN  " ); break;
  96.       case WM_BUTTON1UP     : strcpy( st, "WM_BUTTON1UP    " ); break;
  97.       case WM_BUTTON1DBLCLK : strcpy( st, "WM_BUTTON1DBLCLK" ); break;
  98.       case WM_BUTTON2DOWN   : strcpy( st, "WM_BUTTON2DOWN  " ); break;
  99.       case WM_BUTTON2UP     : strcpy( st, "WM_BUTTON2UP    " ); break;
  100.       case WM_BUTTON2DBLCLK : strcpy( st, "WM_BUTTON2DBLCLK" ); break;
  101.       case WM_BUTTON3DOWN   : strcpy( st, "WM_BUTTON3DOWN  " ); break;
  102.       case WM_BUTTON3UP     : strcpy( st, "WM_BUTTON3UP    " ); break;
  103.       case WM_BUTTON3DBLCLK : strcpy( st, "WM_BUTTON3DBLCLK" ); break;
  104.       default               : strcpy( st, "UNKNOWN         " ); break;
  105.    }
  106.    DspMsg( 60, 8, st );
  107.  
  108.    sprintf( st, "%09lx", qmsg.time );
  109.    DspMsg( 60, 9, st );
  110. }
  111.  
  112. /*--------------------------------------------------------------------
  113. -
  114. --------------------------------------------------------------------*/
  115.  
  116. void main()
  117. {
  118.    HAB        hab;
  119.    HMQ      hmq;
  120.    QMSG     qmsg;
  121.    CHRMSG   kbd;
  122.  
  123.  
  124.    hab = WinInitialize( 0 );
  125.    hmq = WinCreateMsgQueue( hab, 50 );
  126.  
  127.    DspScn();
  128.  
  129.    while ( WinGetMsg( hab, &qmsg, 0, 0, 0 ) ) {
  130.  
  131.       DisplayMsg( qmsg );
  132.  
  133.       if ( qmsg.msg == WM_CHAR ) {
  134.          memcpy( &kbd.fs,  &qmsg.mp1, 4 );
  135.          memcpy( &kbd.chr, &qmsg.mp2, 4 );
  136.  
  137.          if ( kbd.scancode == 1 && kbd.chr == 27 )
  138.             break;
  139.       }
  140.  
  141.    }
  142.    ClrWin( 1, 1, 80, 25, 7 );
  143.    GotoxyAbs( 1, 1 );
  144.  
  145.    WinDestroyMsgQueue( hmq );
  146.    WinTerminate( hab );
  147.    exit( 0 );
  148. }
  149.